Back to overview

METTLER TOLEDO: EVA Karl Fischer titrators affected by libpng vulnerabilities

VDE-2026-053
Last update
05/26/2026 12:00
Published at
05/26/2026 12:00
Vendor(s)
Mettler-Toledo GmbH
External ID
VDE-2026-053
CSAF Document

Summary

Titration software versions prior to 2.0.2.6 are affected by libpng vulnerabilities CVE-2026-33416 and CVE-2026-33636.

Impact

When an EVA Karl Fischer titrator connects to a LabX server for authentication, a crafted PNG image processed during this flow could trigger the vulnerability in the underlying libpng library, potentially causing a denial of service, information disclosure, heap corruption, or code execution.

Affected Product(s)

Model no. Product name Affected versions
EVA C1 Coulometric Karl Fischer Titrator Titration Software version <2.0.2.6
EVA C3 Coulometric Karl Fischer Titrator Titration Software version <2.0.2.6
EVA V1 Volumetric Karl Fischer Titrator Titration Software version <2.0.2.6
EVA V3 Volumetric Karl Fischer Titrator Titration Software version <2.0.2.6

Vulnerabilities

Expand / Collapse all

Published
05/26/2026 10:00
Weakness
Out-of-bounds Write (CWE-787)
Summary

LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. In versions 1.6.36 through 1.6.55, an out-of-bounds read and write exists in libpng's ARM/AArch64 Neon-optimized palette expansion path. When expanding 8-bit paletted rows to RGB or RGBA, the Neon loop processes a final partial chunk without verifying that enough input pixels remain. Because the implementation works backward from the end of the row, the final iteration dereferences pointers before the start of the row buffer (OOB read) and writes expanded pixel data to the same underflowed positions (OOB write). This is reachable via normal decoding of attacker-controlled PNG input if Neon is enabled. Version 1.6.56 fixes the issue.

References

Published
05/26/2026 10:00
Weakness
Use After Free (CWE-416)
Summary

LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. In versions 1.2.1 through 1.6.55, png_set_tRNS and png_set_PLTE each alias a heap-allocated buffer between png_struct and png_info, sharing a single allocation across two structs with independent lifetimes. The trans_alpha aliasing has been present since at least libpng 1.0, and the palette aliasing since at least 1.2.1. Both affect all prior release lines png_set_tRNS sets png_ptr->trans_alpha = info_ptr->trans_alpha (256-byte buffer) and png_set_PLTE sets info_ptr->palette = png_ptr->palette (768-byte buffer). In both cases, calling png_free_data (with PNG_FREE_TRNS or PNG_FREE_PLTE) frees the buffer through info_ptr while the corresponding png_ptr pointer remains dangling. Subsequent row-transform functions dereference and, in some code paths, write to the freed memory. A second call to png_set_tRNS or png_set_PLTE has the same effect, because both functions call png_free_data internally before reallocating the info_ptr buffer. Version 1.6.56 fixes the issue.

References

Remediation

Update to Titration software version 2.0.2.6, which includes fixes for CVE-2026-33416 and CVE-2026-33636.

Acknowledgments

Mettler-Toledo GmbH thanks the following parties for their efforts:

Revision History

Version Date Summary
1.0.0 05/26/2026 12:00 Initial revision